#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,u[200010],v[200010],dp[110][110],flg[110],num,fac[200010];
const int mod=998244353;
int qpow(int x,int y){
	int res=1,now=x;
	while(y){
		if(y&1) res*=now,res%=mod;
		y>>=1,now*=now,now%=mod;
	}
	return res;
}
int C(int x,int y){
	return fac[x]*qpow(fac[y],mod-2)%mod*qpow(fac[x-y],mod-2)%mod;
}
signed main(){
	freopen("soft.in","r",stdin);
	freopen("soft.out","w",stdout);
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<n;i++)
		scanf("%lld%lld",&u[i],&v[i]);
	if(n<=100){
		dp[0][0]=1;
		for(int i=1;i<=n;i++){
			memset(flg,0,sizeof(flg));
			for(int j=i;j>=1;j--){
				num=0;
				flg[j]=1;
				for(int l=1;l<n;l++)
					if(flg[u[l]]&&flg[v[l]]) num++;
				if(num==i-j){
					for(int l=1;l<=k;l++)
						dp[i][l]+=dp[j-1][l-1],dp[i][l]%=mod;
				}
			}
		}
		for(int i=1;i<=k;i++)
			printf("%lld\n",dp[n][i]);
	}else{
		fac[0]=1;
		for(int i=1;i<=n;i++)
			fac[i]=fac[i-1]*i,fac[i]%=mod;
		for(int i=1;i<=k;i++)
			printf("%lld\n",C(n-1,i-1));
	}
	return 0;
}
